<?php

namespace app\admin\validate;

use app\admin\logic\CompanyLogic;
use app\admin\model\Company;
use app\admin\model\CompanyUser;
use app\common\basic\BaseValidate;

/**
 * 部门验证器
 */
class CompanyValidate extends BaseValidate
{
    /**
     * 定义验证规则
     */
    protected $rule = [
        'name' => 'require|unique:'.Company::class,
        'short_name' => 'require|unique:'.Company::class,
        'area_id' => 'require',
        'address' => 'require',
        'lng' => 'require',
        'lat' => 'require',
        'contact' => 'require',
        'phone' => 'require|mobile',
        'idcard' => 'require',
        'type' => 'require',
        'platform_type' => 'require',
        'cooperation_start_time' => 'require',
        'account' => 'require|unique:'.CompanyUser::class.',username',
    ];

    /**
     * 定义错误信息
     */
    protected $message  =   [
        'name.require' => '企业名称不能为空',
        'name.unique' => '已存在相同的企业名称',
        'short_name.require' => '企业别名不能为空',
        'short_name.unique' => '企业别名已存在',
        'logo.require' => '企业 logo 不能为空',
        'area_id.require' => '企业所属县域不能为空',
        'address.require' => '企业地址不能为空',
        'type.require' => '企业类型不能为空',
        'lng.require' => '经度不能为空',
        'lat.require' => '纬度不能为空',
        'contact.require' => '联系人不能为空',
        'idcard.require' => '联系人身份证号不能为空',
        'phone.require' => '联系人手机号不能为空',
        'phone.mobile' => '联系人手机号格式不正确',
        'cooperation_start_time.require' => '服务周期不能为空',
        'service_rate.require' => '合作费率不能为空',
        'platform_type.require' => '平台类型不能为空',
        'operation_manager.require' => '运营经理不能为空',
        'business_manager.require' => '业务经理不能为空',
        'account.require' => '账户不能为空',
        'account.unique' => '账户已存在',
    ];
    
    /**
     * 定义场景
     */
    protected $scene = [
        'save' => [
            'name',
            'short_name',
            'area_id',
            'address',
            'lng',
            'lat',
            'contact',
            'phone',
            'idcard',
            'type',
            'platform_type',
            'cooperation_start_time',
            'account',
        ],
        'update' => [
            'name',
            'short_name',
            'area_id',
            'address',
            'lng',
            'lat',
            'contact',
            'phone',
            'idcard',
            'type',
            'platform_type',
            'cooperation_start_time',
        ],
    ];
    
}
